gh-112536: Set up TSAN CI for free-threading#116555
gh-112536: Set up TSAN CI for free-threading#116555corona10 wants to merge 19 commits intopython:mainfrom
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
|
Hmm, I locally passed the thread-sanitizer test with clang, I am taking a look why CI has an issue. |
Weired.. |
|
I need to check on my Linux machine later. |
| - name: Set up GCC-10 for ASAN | ||
| uses: egor-tensin/setup-gcc@v1 | ||
| with: | ||
| version: 11 |
There was a problem hiding this comment.
The version says "11" but the step name says "GCC-10"
| - name: Display build info | ||
| run: make pythoninfo | ||
| - name: Tests | ||
| run: ./python -m test --pgo -j4 # Reduce test scope |
There was a problem hiding this comment.
I think we'll want a configuration specifically for tsan. Maybe a --tsan option? We'll only want to run tests that actually use threading.
Brett had a list of tests that fail with PYTHON_GIL=0 -- those are probably a good starting point:
swtaarrs@1fe9165#diff-590c02490d066378045dd48d62e86dc85d3fb4ad934b6a2b2b0b1112e59eaefb
| /***************************/ | ||
|
|
||
| static int | ||
| _Py_NO_SANITIZE_THREAD |
There was a problem hiding this comment.
I've had a better experience using suppression lists rather than marking functions as _Py_NO_SANITIZE_THREAD:
- Add a file
supressions.txtsomwhere (maybeTools/tsan/supressions.txt?) - Set the environment variable
TSAN_OPTIONS="suppressions=<path_to_supressions.txt>"
See https://github.com/google/sanitizers/wiki/ThreadSanitizerSuppressions
| with: | ||
| version: 11 | ||
| - name: Configure CPython | ||
| run: ./configure --disable-gil --with-thread-sanitizer |
There was a problem hiding this comment.
Do we want --with-pydebug?
|
Actual PR for this issue will be: #116872 |
--with-thread-sanitizer#112536